const Subscription = require('egg').Subscription;

class UpdateCache extends Subscription{
    // 通过 schedule 属性来设置定时任务的执行间隔等配置
    static get schedule(){
        return {
            interval: 1000*100, // 1000毫秒*
            //interval: app.config.cacheTick,
             // 每三小时准点执行一次
            //cron: '0 0 */3 * * *',
            //worker 每台机器上只有一个 worker 会执行这个定时任务，每次执行定时任务的 worker 的选择是随机的。
            type: 'worker', // all指定所有的 worker 都需要执行
        };
    }
    // subscribe 是真正定时任务执行时被运行的函数
    //这个定时任务会在每一个 Worker 进程上每 1 分钟执行一次，将远程数据请求回来挂载到 app.cache 上。
    async subscribe() {
        const res = await this.ctx.curl('http://localhost:7001/cache', {
            dataType: 'json',
        });
        console.log(res.data.data)
        this.ctx.app.cache = res.data.data;
    }
}
module.exports = UpdateCache;
